// components/installation/control/control.js
const app = getApp()
//同步请求api
const sync = app.globalData.sync
// 视频监控对象

Component({
    /**
     * 组件的属性列表
     */
    properties: {

    },

    /**
     * 组件的初始数据
     */
    data: {
        checked1: Boolean,
        checked2: Boolean,
        checked3: Boolean,
        checked4: Boolean,
        checked5: Boolean,
        normal: Boolean,
        checked9: Boolean,
        checked10: Boolean,
        checked11: Boolean,

    },

    /**
     * 组件的方法列表
     */
    methods: {
        statechange(e){
            console.log("监控状态变化")
            console.log('live-player code:', e.detail.code)
        },

        error(e){
            console.log("监控异常")
            console.error('live-player error:', e.detail.errMsg)
        },

        // 检查用户是否添加鱼缸
        check(){
            if( !wx.getStorageSync('userAquariumArray')){
                wx.showToast({
                  title: '添加鱼缸后可用',
                  icon:'error',
                  duration:2000
                })
            }
        },

        onChange1({ detail }) {
            this.check()
            // console.log(detail)
            //如果是开启设备
            if (detail) {
                this.requestController("蜂鸣器", 2, function (res,_this) {
                    // console.log("返回的操作结果：", res)
                    if (res == 1) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked1: !_this.data.checked1
                        })
                    }
                })

            } else {  //如果是关闭设备
                this.requestController("蜂鸣器", 1, function (res,_this) {
                    // console.log("返回的操作结果：", res)
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked1: !_this.data.checked1
                        })
                    }
                })

            }
        },
        onChange2({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("白灯", 2,function(res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked2: !_this.data.checked2
                        })
                    }
                })
            } else {  //如果是关闭设备
                 this.requestController("白灯", 1,function(res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked2: !_this.data.checked2
                        })
                    }
                 })
            }
        },
        onChange3({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("蓝灯", 4,function (res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked3: !_this.data.checked3
                        })
                    }
                })
                
            } else {  //如果是关闭设备
                this.requestController("蓝灯", 3,function (res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked3: !_this.data.checked3
                        })
                    }
                })
                
            }
        },
        onChange4({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("橙灯", 6,function(res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked4: !_this.data.checked4
                        })
                    }
                })
                
            } else {  //如果是关闭设备
                this.requestController("橙灯", 5,function (res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked4: !_this.data.checked4
                        })
                    }
                })
                
            }
        },
        onChange5({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("打氧设备", 2,function (res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked5: !_this.data.checked5
                        })
                    }
                })
                
            } else {  //如果是关闭设备
                this.requestController("打氧设备", 1,function (res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked5: !_this.data.checked5
                        })
                    }
                })
                
            }
        },
        onChange6({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("投喂器", 1,function (res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked6: !_this.data.checked6
                        })
                    }
                })
                
            } //投喂器只有一个操作
        },
        onChange7({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("投喂器", 2,function (res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked7: !_this.data.checked7
                        })
                    }
                })
                
            }//投喂器只有一个操作
        },
        onChange8({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("投喂器", 3,function (res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked8: !_this.data.checked8
                        })
                    }
                })
               
            }//投喂器只有一个操作
        },
        onChange9({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("紫外灯", 2,function(res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked9: !_this.data.checked9
                        })
                    }
                })
            } else {  //如果是关闭设备
                this.requestController("紫外灯", 1,function(res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked9: !_this.data.checked9
                        })
                    }
                })
            }
        },
        onChange10({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("排水阀", 2,function(res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked10: !_this.data.checked10
                        })
                    }
                })
                
            } else {  //如果是关闭设备
                this.requestController("排水阀", 1,function (res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked10: !_this.data.checked10
                        })
                    }
                })
             
            }
        },
        onChange11({ detail }) {
            this.check()
            //如果是开启设备
            if (detail) {
                this.requestController("进水阀", 2,function(res,_this) {
                    if (res) { //如果开启成功，则改变开关器的状态
                        _this.setData({
                            checked11: !_this.data.checked11
                        })
                    }
                })
                
            } else {  //如果是关闭设备
                this.requestController("进水阀", 1,function(res,_this) {
                    if (res) { //如果关闭成功，则改变开关器的状态
                        _this.setData({
                            checked11: !_this.data.checked11
                        })
                    }
                })
              
            }
        },

        //type:操作什么类型的设备，behavior：操作行为，参照协议文档，比如1：关闭；2：开启
        requestController(type, behavior, operate) {
            if(!wx.getStorageSync('userAquariumList')){
                console.log("没有添加鱼缸！")
                return
            }
            let aquariumId = wx.getStorageSync('userAquariumArray')[wx.getStorageSync('curIndex')].name

            
            let success = 0;
           
            //用wx.request也可以
            sync.getData(`http://120.77.156.205:8808/wx/aquarium/operateEquipment/${aquariumId}/${type}/${behavior}`).then((res) => {
                // console.log("返回的code：",res.code)
                if (res.code == 0) {
                    operate(1,this)
                   
                } else if (res.code == 12) {
                    
                    wx.showToast({
                        title: '鱼缸网络异常',
                        icon: 'error',
                        duration: 2000
                    })
                } else {
                    wx.showToast({
                        title: '操作失败！',
                        icon: 'error',
                        duration:'2000'
                    })
                    
                }
            },(rej)=>{
                wx.showToast({
                    title: '信号异常！',
                    icon: 'error'
                })
            })

        },

        requestMes() {
            if(!wx.getStorageSync('userAquariumList')){
                console.log("没有添加鱼缸！")
                return
            }
            let aquariumId = wx.getStorageSync('userAquariumArray')[wx.getStorageSync('curIndex')].name

    
            wx.request({
                url: `http://120.77.156.205:8808/wx/aquarium/queryEquipmentStatus/${aquariumId}`,
                method: 'GET',
                success: (res) => {
                    console.log(res)
                    if (res.data.code == 1) {
                        console.log("设备列表为空")
                    } else {
                        let equipments = res.data.data.equipments
                        console.log(equipments[1].state)
                        // 参照协议文档！！！
                        this.setData({
                            checked1: equipments[0].state == 2,
                            checked2: equipments[1].state == 2,
                            checked3: equipments[2].state == 4,
                            checked4: equipments[3].state == 6,
                            checked5: equipments[4].state == 2,
                            //9为故障，不等于9表示投喂器正常
                            normal: equipments[5].state != 9,
                            checked9: equipments[6].state == 2,
                            checked10: equipments[7].state == 2,
                            checked11: equipments[8].state == 2,
                        })
                    }
                }
            })
        }
    },

    lifetimes: {


        attached() {
            let player = wx.createLivePlayerContext('live-player-id', this);
            this.requestMes();
        }
    },

    pageLifetimes: {
        show: function () {
            this.requestMes()
        },

    }
})
